The present invention relates generally to an IP (Internet Protocol) application service providing system, and more particularly to a connection support technology enabling a node, connected to an IP network such as the Internet, to easily perform IP application communication without depending on an existence/non-existence state of NAT/FW via a gateway device such as a network address translation (or translator) or a firewall (NAT/FW).
In an IPv4 network, the network address translation (NAT) is widely employed in terms of saving global IP addresses. The NAT, especially a device called NAPT (Network Address Port Translation), translates a private address and a source port of an in-office/home network into a global address and a source port according to the NAPT (a NAPT table) (see FIG. 1), thereby enabling accesses to an outside network ONW from a plurality of internal nodes A.
Further, in an IPv6 network, though an address starvation problem disappears, it is considered that there will be a continuous use of a firewall (FW) function (see FIG. 2) of permitting only a response of communication from the inside toward the outside in a way that conceals an in-office/home network from an outside network ONW in terms of security.
Thus, the NAT/FW is effective in outside trigger communication (outbound communication) from the inside but, in inside trigger communication (inbound communication) from the outside, has no entry permitting the inbound communication with the result that a packet does not reach a node and therefore encounters with a big obstacle in the case of operating a server application and a P2P (Peer-to-Peer) application on the nodes subordinated to the NAT/FW (see FIG. 3). This type of problem is generally called a [NAT-Traversal problem].
Considered as the conventional technologies for solving this problem are a technology (1) of setting up a static entry in the NAT (refer to Part 1: static NAT in FIG. 4), a technology (2) of controlling the entry on the basis of a protocol by using UPnP (Universal Plug and Play) (refer to Part 2: UPnP in FIG. 4) and a technology (3) of generating the entry that permits the inbound communication in a pseudo manner by predicting a post-transform NAT entry (refer to Part 3: UDP (User Datagram Protocol) Hole Punching), and so on.
In the technology (1) generally called static NAT, for instance, the NAT entry is set so that “192.168.1.1:80” (an inside private address/port pair) is uniquely translated into “1.1.1.1:80” (an outside global address/port pair), whereby a Web server appears to an external node B as if being opened at a global address “1.1.1.1”. In fact, the Web server operates at the private address “192.168.1.1” subordinated to the NAT.
The conventional technology (2) is a scheme of automating the static NAT, wherein an UPnP protocol is operated between the node and the NAT, and the NAT is controlled from the node so as to map “192.168.1.1:80” to “1.1.1.1:80” by use of an AddPortMapping message, thereby setting up the same entry as by the static NAT.
The conventional technology (3) is a scheme in which the internal node A under the NAT predicts a post-translation global IP address/port pair by employing an STUN (Simple Traversal of UDP through NATs) protocol specified by RFC3489 (see FIGS. 9 and 10), generates the NAT entry using a dummy packet and notifies of a communication partner node of this NAT entry, and the external node B starts connecting to the post-translation IP address/port pair, thereby enabling the communication with the internal node A.
There arise, however, the following problems inherent in these conventional technologies. The conventional technology (1) requires detailed settings and knowledge about the NAT for every application, i.e., requires a large number of operation steps.
The conventional technology (2) requires support of the same protocol for both of the node and the NAT, and, if the node and the NAT are not within the same segment (namely, if the NATs are multi-staged and if a router is situated on a route up to the NAT), an UPnP packet (a multicast packet) is unable to reach the NAT, resulting in being uncontrollable.
In the conventional technology (3), there exist some NATs that can not be applied depending on their types (which will be explained later on), and, especially in the case of TCP (Transmission Control Protocol) communication, there are many cases of filtering an inbound TCP SYN packet (connection request) (a state full inspection function; see FIG. 13) though capable of generating the NAT entry itself, with the result that the conventional technology (3) can not be applied depending on an environment.
The NATs are roughly classified into two types such as Cone NAT and Symmetric NAT, wherein the Cone NAT is sub-classified into three types (see FIGS. 5-8), while the Symmetric NAT can not, because of allocating the different global port to every destination, be supported by the technology that predicts the post-translation port as by the STUN and the UDP Hole Punching (see FIGS. 11 and 12).
Further, all of the conventional technologies emphasize how the inbound communication toward the inside is started from the outside of the NAT/FW, there is consequently a case of being unable to perform the communications at an arbitrary timing (namely, the connection can not be established unless synchronizing with action from under the NAT), and, in the case of scheming to operate a server application provided at a well-known port, a port conflict (where a plurality of applications can be provided at the same global port because of being unable to share the global port) occurs between the nodes and the applications.
For example, even when trying to configure two Web servers under the NAT, the second Web server cannot be provided at a default port No.80. Precisely, this implies that though the Web server itself operates at the port No.80, since the mapping to “1.1.1.1:80” has already been consumed, for example, if trying to open the second Web server specified by “192.168.1.2:80” to the outside, there is no alternative but to map it to a port other than No.80 such as “1.1.1.1:81”, but it is known to the external node B that this address/port pair “1.1.1.1:81” is previously provided at a different port, and a Web page can not be browsed unless [:http://1.1.1.1:81] etc is inputted. If provided at the port No.80, the port number can be omitted such as [http://1.1.1.1].
Thus, as compared with the case of having no existence of the NAT/FW, there is a large restraint on providing the applications, and, as the case may be, such a problem arises that the application operations themselves are required to be rearranged due to the existence of the NAT/FW.
The following is a related art to the present invention. [Patent document 1] Japanese Patent Application Laid-Open Publication No.2005-260715